package dfbz.com.service;

import dfbz.com.model.Article;
import dfbz.com.model.Favorite;

import java.util.List;
import java.util.Map;

public interface AritcleService<T> {

    /**
     * 查找文章列表
     *
     * @return
     * @param current
     * @param articleName
     */
    List<T> findArticleList(String current, String articleName);



    /**
     * 查找共查询到的信息数
     *
     * @return
     */
    Long findTotalCount(String articleName);


    /**
     * 根据id号找到这本书（detail）
     *
     * @param id
     * @return
     */
    Map findArticleDetail(String id);


    /**
     * 添加文章
     *
     * @param article 文章对象
     */
    void addArticle(Article article);

    /**
     * 查找收藏的文章列表
     *
     * @param current 当前页码
     * @param articleName 文章标题
     * @param id 用户id
     * @return 文章列表
     */

    List findCollectArticleList(String current, String articleName,String id);


    /**
     * 找到收藏文章的总数
     *
     * @param articleName 文章标题
     * @param userId 用户id
     * @return 总数
     */
    Long findCollectTotalCount(String articleName, String userId);


    /**
     * 判断用户是否收藏了本书
     *
     * @param bId 书id
     * @param uId 用户id
     * @return 0为没收藏，1为已经收藏过
     */
    Integer ifCollect(Integer bId, Integer uId);

    /**
     * 添加收藏
     *
     * @param favorite 收藏对象
     */
    void collectArticle(Favorite favorite);


    /**
     * 删除收藏
     *
     * @param aId 文章id
     * @param uId 用户id
     */
    void cancelCollect(int aId, int uId);



    /**
     * 找到共同关注文章的人
     *
     * @param aId 文章id
     * @param uId 用户id
     * @return 用户名列表
     */

    List findCoCollectPeople(int aId, int uId);


    /**
     * 添加文章的浏览次数
     *
     * @param aId 文章id
     */
    void updateBrowseCount(Integer aId);
}
